﻿
namespace PaceR.Core.Interfaces
{
    /// <summary>
    /// Factory for returning result objects
    /// </summary>
    public interface IResultObjectFactory
    {
        /// <summary>
        /// Get a concrete IResult<T> object
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        IResult<T> GetResultObject<T>();
        /// <summary>
        /// Get a concrete IResultMessages object
        /// </summary>
        /// <returns></returns>
        IResultMessages GetResultMessagesObject();
        /// <summary>
        /// Get a concrete IResultMessage object
        /// </summary>
        /// <returns></returns>
        IResultMessage GetResultMessageObject();
    }
}
